Modeling dynamic systems, including fluid dynamic systems, using computers, particularly high-speed digital computers, is a well known and cost efficient way of predicting system performance for both steady state and transient conditions without having to physically construct and test an actual system. A benefit to computer modeling is that the effect on performance of changes in system structure and composition can be easily assessed, thereby leading to optimization of the system design prior to construction of a commercial prototype.
Known modeling programs generally use a “multi-cell” approach, where the structure to be modeled is divided into a plurality of discrete volume units (cells). Typically, the computer is used to compute thermophysical values of the fraction of the system within the cell, such as mass, momentum, and energy values, as well as additional system performance parameters such as density, pressure, velocity, and temperature, by solving the conservation equations governing the transport of mass, momentum, or energy units from the neighboring cells or from a system boundary. For example, one skilled in the art would understand that for a geometric system model using Cartesian coordinates, and absent a system boundary, each cell would have six cell neighbors positioned adjacent the six faces of the cube-shaped cell. An example of a computational fluid dynamics modeling program is the MoSES Program available from Convergent Thinking LLC, Madison, Wisconsin. However, improvements are possible and desirable in existing modeling programs.
For example, MoSES primarily uses the pointwise Gauss-Seidel iterative method for solving the governing transport conservation equations. When solving the discretized governing equations, the Gauss-Seidel method sweeps through all of the computational cells one by one and updates each cell's transported quantities based on fluxes at cell faces calculated from the cell thermophysical values and the thermophysical values of its neighboring, adjacent cells. This process, which is called an “iteration,” is repeated until the changes in thermophysical values of the cells for successive iterations are smaller than the specified convergence criteria.
In many fluid dynamic system models, it is often desirable to have regions of “embedded” cells of a smaller size (i.e., volume) to obtain more precise thermophysical value information in regions of high gradients, e.g., in the pressure field surrounding flow past a blunt body. However, the increase in the number of cells can make each iteration more time consuming and less efficient.
Multi-grid computations methods solve for the thermophysical values on the computational level cells (base grid). On the coarser grid cells, residual equations are solved and the results at the coarser cells are used to improve the solution of the computation level cells. The residual is defined as the current iteration thermophysical value minus the previous iteration thermophysical value. Multi-grid computation methods are divided into geometric and algebraic methods. In general, algebraic methods are less efficient and are used for non-uniform or unstructured grids while geometric computation methods are more efficient but are used only for orthogonal, structured grids. The pressure equation, among other equations, solved in MoSES, is an equation that may be efficiently solved using multi-grid computation.
FIG. 1 shows a three-dimensional model grid that may be treated by a conventional geometric multi-grid computation method. As can be seen, the computational level cells “a” (smallest cells) are all orthogonal and they are all the same size. In a typical geometric multi-grid method, one or more iterations are first done at the computational level, the level where all the cells including the embedded cells are treated individually, using an iterative method (e.g., Gauss-Seidel). At the coarse level the residual equation is constructed based on the iteration results on the computational level as someone skilled in the art would understand. The residual on the coarse level will be used to correct the iteration results at the computational level. This is done for numerical efficiency reasons.
When a specified number of iterations at the computational level are complete, the “a” cells are computationally grouped into larger “b” cells and the residuals of eight computational “a” cells are averaged and passed to the “b” cell level. In FIG. 1, eight “a” cells are grouped to form each “b” cell in the 3D grid (only four “a” cells being depicted in the 2D representation of FIG. 1). However, other groupings can be used to give a geometrically regular grid level (e.g., 27 “a” cells for a 3×3×3 “a” cell group, etc.).
At this point, a specified number of iterations are done at the “b” cell level, eight “b” cells (only four shown in FIG. 1) are regrouped into larger “c” cells (only one shown in FIG. 1) and the residuals of “b” level cells are averaged and passed to the “c” cell level (i.e., the largest cells, including 64 of the smallest “a” cells). This process could be continued if the grid was larger, as necessary. After iterating at the coarsest grid level, in this example the “c” cell level, the residual is transferred back to the “b” cell level and iterations are done at the “b” level. Again, the “b” level residuals are transferred to the “a” cell level and iterations are done at the “a” level. This process of iterating and transferring residuals between levels is done until the residuals are below a specified tolerance.
In the MoSES computational fluid dynamics model program, geometric multi-grid methods have been used in conjunction with a Gauss-Seidel type-iterative calculation method to solve the pressure equation where the system model has cells of a uniform size. However, as stated previously, in modeling programs such as MoSES, it would be desirable to use embedded grids for providing more precise information relating to particular locations within a model being evaluated. As a result, a method and apparatus are needed for adapting the multi-grid computational method to solve for thermophysical values (e.g., pressure) in models that include embedded grids.